%%#****+++%*#******+++++++**+++====-=+##%@%%%%%%%%##*#%%%%%###%%%%%%%
*##*#+*##%#*****+++++++++++===========***@@@%%%%%@%###%%%%%%%%###%%%%
*==*%@@@@@%*++++++*+++=++===--=======*%#%@@@%%%%%%%####%##%%%%%%%###%
#*++*%@@@%#+++++====----------=+*#***%%%@@@@%%%%%%%###%###%%%%%%%@%%%
**#####*+*=------------------=#%%%%#*##%%%@@@%%%%%%%###%###%#%%%@@@@@
**+#%#++=*==------==========++%%#****#**+++*%%%%%%%%**##%%%#%%%%%@@@@
*%%#+====+=========++++++**#####*=+######*#++%%###**+*###%%#%%%%%@@@@
#**#*=-=====++++++**********##%*+*##%##%##%*#%%%%%%##*++++**##%%%@@@@
**###*+=+++++***+*******###**%%#*#%##%#%%%##%%%%%%%%%%%%##*+===++*#%@
++++==++*++**###**************%###%#*%%%%###%%%%%%%%%%%%%%%%#*+=====+
++++++********#**#**###*****+++*%##**%%%%%###%%%%%%%%%%%%%%%%%%#*+==+
+++*******++**+*************+**####*#%%%%####%%%%%%%%%%%%%%%%%%%%%#**
*****************#####****##****#######%###############%%%%%%%%%%%%%%
####*******######%##%########%########*####*######%%%%%%%%%%%%%%%%%%%
#############%%%%%%%%%##%%%%%%#%%%%%%%##%%%%########################%
#####%%%%%%%%%%%%%%%%%####%%%%%%####%%%%%%%%#%%%%%%%%%%%#############
%%%%%%##%%%#####%%%%%%####%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%
%%%%%%%%%%%%%#%%%%%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########%%##%
%%%%%%%%%%%%%%%%%%%%%%#######%%%%%%%#%%%###%%%%##%%%%%###############
%%%%%%%%%%%%%%%%%%%%%#########%%%%%%%###%############################
%%%%%%%%%#%%##%%%%%%%################################################
%%%@%%@%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%